package dados;

import java.util.ArrayList;
import java.sql.Date;
import java.util.List;

public class Paciente extends Pessoa{

	private String convenio;
	private List<Amostra> amostras;

	public Paciente(int id){
		super(id);
	}
	
	public Paciente(int id, char sexo, String nome, long rg, long cpf,
			Date dataNas, String endereco, String convenio, ArrayList<Amostra> a) {
		super(id, sexo, nome, rg, cpf, dataNas, endereco);
		
		this.convenio = convenio;
		this.amostras = a;
	}
	
	public Paciente(int id, char sexo, String nome, long rg, long cpf,
			Date dataNas, String endereco, String convenio, byte[] foto) {
		super(id, sexo, nome, rg, cpf, dataNas, endereco, foto);
		
		this.convenio = convenio;
	}
	
	public Paciente(int id, String nome, long rg, long cpf, String convenio) {
		super(id, 'M', nome, rg, cpf, null, "e");
		
		this.convenio = convenio;
		this.amostras = new ArrayList<Amostra>();
	}

	public Paciente(int id, char sexo, String nome, long rg, long cpf,
			Date dataNas, String endereco, String convenio) {
		super(id, sexo, nome, rg, cpf, dataNas, endereco);
		
		this.convenio = convenio;
	}

	public void setAmostras(List<Amostra> amostras) {
		this.amostras = amostras;
	}

	public String getConvenio() {
		return this.convenio;
	}

	public void setConvenio(String convenio) {
		this.convenio = convenio;
	}
	
	public void adicionarAmostra(Amostra amostra){
		if(this.amostras == null)
			this.amostras = new ArrayList<Amostra>();
		this.amostras.add(amostra);
	}
	
	public void removerAmostra(Amostra amostra){
		this.amostras.remove(amostra);
	}
	
	public boolean existeAmostra(Amostra amostra){
		boolean retorno = false;
		
		if(this.amostras.contains(amostra)){
			retorno = true;
		}
		return retorno;
	}
	
	public List<Amostra> getAmostras(){
		return this.amostras;
	}
	
	public boolean equals(Paciente paciente){
		boolean retorno = false;
		
		if(this.getId() == paciente.getId()){
			retorno = true;
		}
		return retorno;
	}
	
	public String toString(){
		return this.getNome();
	}
}
